/*
 * To  change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package menus;

import bitclub.BitUtil;
import bitclub.Cliente;
import bitclub.Oferta;
import bitclub.OfertaDiaSemana;
import bitclub.OfertaNumeroArticulo;
import bitclub.Pelicula;
import bitclub.Proveedor;
import bitclub.Prueba;
import bitclub.Tarifa;
import bitclub.Trabajador;
import bitclub.Videojuego;
import java.util.Date;
import java.util.List;

/**
 *
 * @author JAVA
 */
public class Selector {

    /**
     * Abre las opciones de búsqueda de clientes para poder efectuar acciones sobre ellos
     * PRINCIPAL > CLIENTES > BUSCAR
     */
    public static Cliente cliente() {
        Cliente cliente = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR AL CLIENTE?", new String[]{"Por DNI", "Por Nombre"});
        switch (respuesta) {
            case 1:
                String dni = BitUtil.dameEnteroFijo("Introduzca DNI: ", 8);
                cliente = Cliente.seleccionarPorDni(dni);
                break;
            case 2:
                String nombre = BitUtil.dameCadena("Introduzca nombre: ");
                List<Cliente> clientes = (List) Cliente.seleccionarPorNombre(nombre);
                String[] opciones = new String[clientes.size()];
                for (int i = 0; i < clientes.size(); i++) {
                    opciones[i] = clientes.get(i).getNombre() + " " + clientes.get(i).getApellidos();
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE CLIENTE?", opciones);
                cliente = clientes.get(seleccion - 1);
                break;
        }

        return cliente;
    }

    /**
     * Menú para seleccionar un artículo
     * PRINCIPAL > ARTICULOS > BUSCAR
     */
    public static Pelicula pelicula() {
        Pelicula pelicula = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR LA PELICULA?", new String[]{"Por Código", "Por Título", "Por Año", "Por Género"});
        switch (respuesta) {
            case 1:
                int codigo = BitUtil.dameEntero("Introduzca Codigo: ");
                pelicula = Pelicula.seleccionarPorCodigo(codigo);
                break;
            case 2:
                String titulo = BitUtil.dameCadena("Introduzca titulo: ");
                List<Pelicula> listPelicula = (List) Pelicula.seleccionarPorTitulo(titulo);
                String[] opciones = new String[listPelicula.size()];
                for (int i = 0; i < listPelicula.size(); i++) {
                    opciones[i] = listPelicula.get(i).getTitulo() + " " + listPelicula.get(i).getAno();
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE PELICULA?", opciones);
                pelicula = listPelicula.get(seleccion - 1);
                break;
            case 3:
                int ano = BitUtil.dameEntero("Introduzca año: ");
                listPelicula = (List) Pelicula.seleccionarPorAno(ano);
                opciones = new String[listPelicula.size()];
                for (int i = 0; i < listPelicula.size(); i++) {
                    opciones[i] = listPelicula.get(i).getTitulo() + " " + listPelicula.get(i).getAno();
                }
                BitUtil.borra();
                seleccion = BitUtil.muestraMenu("SELECCIONE PELICULA?", opciones);
                pelicula = listPelicula.get(seleccion - 1);
                break;
            case 4:
                String genero = BitUtil.dameCadena("Introduzca genero: ");
                listPelicula = (List) Pelicula.seleccionarPorGenero(genero);
                opciones = new String[listPelicula.size()];
                for (int i = 0; i < listPelicula.size(); i++) {
                    opciones[i] = listPelicula.get(i).getTitulo() + " " + listPelicula.get(i).getAno();
                }
                BitUtil.borra();
                seleccion = BitUtil.muestraMenu("SELECCIONE PELICULA?", opciones);
                pelicula = listPelicula.get(seleccion - 1);
                break;
        }

        return pelicula;
    }

    /**
     * Menú para seleccionar un artículo
     * PRINCIPAL > ARTICULOS > BUSCAR
     */
    public static Videojuego videojuego() {
        Videojuego videojuego = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR EL VIDEOJUEGO?", new String[]{"Por Código", "Por Título", "Por Año", "Por Género"});
        switch (respuesta) {
            case 1:
                int codigo = BitUtil.dameEntero("Introduzca Codigo: ");
                videojuego = Videojuego.seleccionarPorCodigo(codigo);
                break;
            case 2:
                String titulo = BitUtil.dameCadena("Introduzca titulo: ");
                List<Videojuego> listVideojuego = (List) Videojuego.seleccionarPorTitulo(titulo);
                String[] opciones = new String[listVideojuego.size()];
                for (int i = 0; i < listVideojuego.size(); i++) {
                    opciones[i] = listVideojuego.get(i).getTitulo() + " " + listVideojuego.get(i).getAno();
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE VIDEOJUEGO?", opciones);
                videojuego = listVideojuego.get(seleccion - 1);
                break;
            case 3:
                int ano = BitUtil.dameEntero("Introduzca año: ");
                listVideojuego = (List) Videojuego.seleccionarPorAno(ano);
                opciones = new String[listVideojuego.size()];
                for (int i = 0; i < listVideojuego.size(); i++) {
                    opciones[i] = listVideojuego.get(i).getTitulo() + " " + listVideojuego.get(i).getAno();
                }
                BitUtil.borra();
                seleccion = BitUtil.muestraMenu("SELECCIONE VIDEOJUEGO?", opciones);
                videojuego = listVideojuego.get(seleccion - 1);
                break;
            case 4:
                String genero = BitUtil.dameCadena("Introduzca genero: ");
                listVideojuego = (List) Videojuego.seleccionarPorGenero(genero);
                opciones = new String[listVideojuego.size()];
                for (int i = 0; i < listVideojuego.size(); i++) {
                    opciones[i] = listVideojuego.get(i).getTitulo() + " " + listVideojuego.get(i).getAno();
                }
                BitUtil.borra();
                seleccion = BitUtil.muestraMenu("SELECCIONE VIDEOJUEGO?", opciones);
                videojuego = listVideojuego.get(seleccion - 1);
                break;
        }

        return videojuego;
    }

    /**
     * Nos permite seleccionar un empleado
     * ((probablemente no haya tantos empleados como para hacer una búsqueda))
     * PRINCIPAL > EMPLEADOS > BUSCAR
     */
    public static Trabajador trabajador() {
        Trabajador trabajador = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR AL TRABAJADOR?", new String[]{"Por DNI", "Por Nombre"});
        switch (respuesta) {
            case 1:
                String dni = BitUtil.dameDni("Introduzca DNI: ");
                trabajador = Trabajador.seleccionarPorDni(dni);
                break;
            case 2:
                String nombre = BitUtil.dameCadena("Introduzca nombre: ");
                List<Trabajador> trabajadores = (List) Trabajador.seleccionarPorNombre(nombre);
                String[] opciones = new String[trabajadores.size()];
                for (int i = 0; i < trabajadores.size(); i++) {
                    opciones[i] = trabajadores.get(i).getNombre() + " " + trabajadores.get(i).getApellidos();
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE CLIENTE?", opciones);
                trabajador = trabajadores.get(seleccion - 1);
                break;
        }

        return trabajador;
    }

    /**
     * Nos permite seleccionar un empleado
     * ((probablemente no haya tantos empleados como para hacer una búsqueda))
     * PRINCIPAL > EMPLEADOS > BUSCAR
     */
    public static Tarifa tarifa() {
        Tarifa tarifa = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR LA TARIFA?", new String[]{"Por codigo", "Por Nombre"});
        switch (respuesta) {
            case 1:
                int id = BitUtil.dameEntero("Codigo: ");
                tarifa = Tarifa.seleccionarPorIdBD(id);
                break;
            case 2:
                String nombre = BitUtil.dameCadena("Introduzca nombre de la tarifa: ");
                List<Tarifa> tarifas = (List) Tarifa.seleccionarPorNombreBD(nombre);
                String[] opciones = new String[tarifas.size()];
                for (int i = 0; i < tarifas.size(); i++) {
                    opciones[i] = tarifas.get(i).getNombre() + " " + tarifas.get(i).getPrecio() + "/ " + tarifas.get(i).getRecargo() + " después de " + tarifas.get(i).getNumDias() + " dias";
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE TARIFA?", opciones);
                tarifa = tarifas.get(seleccion - 1);
                break;
        }

        return tarifa;
    }

    /**
     * Nos permite seleccionar un proveedor
     * ((probablemente no haya tantos proveedores como para hacer una búsqueda))
     */
    public static Proveedor proveedor() {
        Proveedor proveedor = null;
        int respuesta;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("COMO QUIERE SELECCIONAR AL PROVEEDOR?", new String[]{"Por CIF", "Por Nombre"});
        switch (respuesta) {
            case 1:
                String cif = BitUtil.dameEnteroFijo("Introduzca CIF: ", 10);
                proveedor = Proveedor.seleccionarPorCif(cif);
                break;
            case 2:
                String nombre = BitUtil.dameCadena("Introduzca nombre: ");
                List<Proveedor> listProveedor = (List) Proveedor.seleccionarPorNombre(nombre);
                String[] opciones = new String[listProveedor.size()];
                for (int i = 0; i < listProveedor.size(); i++) {
                    opciones[i] = listProveedor.get(i).getNombre() + " " + listProveedor.get(i).getApellidos();
                }
                BitUtil.borra();
                int seleccion = BitUtil.muestraMenu("SELECCIONE PROVEEDOR?", opciones);
                proveedor = listProveedor.get(seleccion - 1);
                break;
        }

        return proveedor;
    }

}